EC2 Image Builderで作ったイメージを他アカウントに共有してみた #reinvent

EC2 Image Builderで作ったイメージを他アカウントに共有してみた #reinvent

Clock Icon2019.12.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、中川です。

ついに re:Invent2019 が始まりました!
re:Invent2019 の第一弾アップデートの 1 つにEC2 Image Builderがございます。EC2 Image Builder は、イメージの作成、保守、検証、共有、および展開を簡素化します。

本ブログでは、EC2 Image Builder で作ったイメージを他のアカウントへの共有について、ご紹介します。
組織で統一したイメージを使用したい、イメージのライフサイクルを効率的に管理したい、というときにはまるサービスです。

EC2 Image Builder のイメージ作成手順については、以下のブログを参考にしてください。
https://dev.classmethod.jp/cloud/aws/ec2-image-builder/
https://dev.classmethod.jp/cloud/aws/cm-reinvent-2019-ec2-imagebuilder/

共有に関する仕様

  • 共有できる対象
  • Components
  • Images
  • Image recipes
  • Organization 管理下のアカウントに共有可能で、Organizationの利用が必須
  • 暗号化を使用できない
  • 自アカウントのリソースのみ共有可能(他のアカウントから共有されたリソースを共有できない)

やってみた

Organization を有効にしたアカウントで最初のイメージを作成したところから始めます。

AWS Resource Access Manager に接続し、[Create a resource share]をクリックします。

共有するリソースの名前を入力し、対象リソースとしてImage Builder Imagesを選択します。

最初に作成したイメージが表示されますので、チェックを有効にします。

プリンシパルでは、Organization の OU を選択し、一番下の[Create resource share]をクリックします。

共有リソースが表示されます。(Deleted のリソースはお試しで作成したもの)

OU 配下の AWS アカウントにスイッチロールします。スイッチロールしたアカウントの Resource Manager の左ペインから[Shared with me]をクリックすると、イメージが共有されていることを確認できます。

EC2 Image Builder に移動して、[Images]を選択すると、こちらでも共有されていることを確認できます。

以下の画像は AMI の一覧情報で、この時点でAMIは作成されておりません。EC2 Image Builder のイメージを共有しているため、そのアカウントで AMI を作成するには、EC2 Image Builder でパイプラインを作成し、パイプラインを実行する必要があります。

そのため、パイプラインを作成します。EC2 Image Builder で、[Create Image Pipeline]をクリックし、Browse to select an image から、共有したイメージを選択します。

その後は、ビルドやテストのレシピを選択を進めて、パイプラインを作成します。

パイプラインを作成したら[Run Pipeline]をクリックし、パイプラインを実行します。

パイプラインを実行すると、AMI が作成されていることを確認できました。

さいごに

EC2 Image Builder で作成したイメージを他のアカウントに共有してみました。EC2 Image Builder のリソースを共有するには、Organization が必須になりますので、ご注意ください。

ユースケースとして、組織の中で統制がきいたイメージを使う必要があり、また各プロジェクトごとにもイメージのライフサイクル管理が必要な場合は、イメージの共有は有用であると思いました。ただ、もしプロジェクトごとにイメージをリリースをしないけどイメージを共有はしたいようなケースがあれば、イメージではなくレシピやコンポーネントを共有したほうがいいケースもあるとも感じました。

EC2 Image Builder は、Golden AMI の管理がしやすくなる熱いアップデートですので、もっと深堀りして理解を深めていきたいです。

参考

Resource Sharing in EC2 Image Builder

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.